package com.gin.kotlin.no_gay_alliance.argument

import android.os.Parcelable
import com.gin.nga.enums.param.ItemType
import kotlinx.parcelize.Parcelize

/**
 * 道具参数
 * @property type 道具类型
 * @property page 页数
 * @property subTypeId 子类型ID
 * @property userId 用户ID（表示对该用户使用道具）
 * @property topicId 主题ID（表示对该主题或主题内回复使用道具）
 * @property replyId 回复ID
 * @constructor
 */
@Parcelize
data class ItemArgument(
    val mode: Mode,
    val type: ItemType? = null,
    val page: Int = 1,
    val subTypeId: List<Int>? = null,
    val userId: Long? = null,
    val topicId: Long? = null,
    val replyId: Long? = null,
) : Parcelable {


    /**
     * ItemFragment的显示模式
     */
    enum class Mode {
        /**
         * 网格模式，显示简易信息，适用于在主题或用户中心显示
         */
        Grid,

        /**
         * 线性模式，显示详细信息，适用于在仓库和商店中显示
         */
        Linear,
    }
}